/**
 *@ 使用数组计数的改进
 *
 * @author	 wangshikun <wangshikun2010@gmail.com>
 * @copyright	(c) 2012 wangshikun <wangshikun2010@gmail.com>
 * @license	http://www.opensource.org/licenses/mit-license.php The MIT License
 * @package	default
 * @subpackage	default
 */

#include <stdio.h>
#include <cs50.h>
#define COUNT 15

int main(int argc, char *argv[]) {
		int rating[COUNT + 1], s;

		printf("输入数字次数：");
		int number = GetInt();

		// 将值初始化为0，输入的数在1~COUNT之间，就计数
		for (int i=1; i<=COUNT; i++) {
			rating[i] = 0;
		}
		
		printf("Enter your number:\n");
		
		// 对输入的数字进行处理
		for (int i=1; i<=number; i++) {
			scanf("%i", &s);
													
			// 如果输入的数字不再1~COUNT之间就丢弃
			if (s < 1 || s > COUNT) {
				printf("bad number: %i\n", s);
			} else {
				// 如果输入的数字在1~COUNT之间几将相应的数字累加
				rating[s]++;
				printf("截止目前,%i出现过%i次\n", s, rating[s]);
			}
		}
			
		printf("\n\n数量的累加\n");										
		
		// 将1~COUNT之间的数字显示出来，并显示对应的数字用户输入了几次，计数
		for (int i=1; i<=COUNT; i++) {	
			printf("%4i %14i\n", i, rating[i]);
		}

		return 0;
}
